.. _cmlPmIxGetSpeedPattern: cmlPmIxGetSpeedPattern ================================ -------------------------------- SYNOPSYS ````````````` .. code-block:: none VT_I4 cmlPmIxGetSpeedPattern([in] VT_I4 BoardID, [in] VT_I4 NodeId, [in] VT_I4 MapIndex, [out] VT_PI4 IsVectorSpeed, [out] VT_PI4 SpeedMode, [out] VT_PR8 Vel, [out] VT_PR8 Acc, [out] VT_PR8 Dec ) DESCRIPTION ````````````` - cmlPmIxGetSpeedPattern() 함수는 “기본보간제어” 의 이송 속도에 대한 설정된 값을 반환합니다. \ - 이 함수의 사용과 호출에 있어, 제공된 ㈜커미조아의 함수 헤더 Visual Basic 에서는 함수의 첨두어 cml 가 붙지 않습니다. PARAMETER ````````````` ▶ BoardID : 사용자가 설정한 디바이스(보드) ID. ▶ 사용자가 제어하고자 하는 노드 번호. ▶ MapIndex : 맵 번호(Map index), 이 맵번호를 사용하기 전에 먼저 cmlPmIxMapAxes() 함수를 통하여 해당 맵번호에 유효한 축들이 맵핑 되어 있어야 합니다. ▶ IsVectorSpeed : 벡터 속도 또는 마스터 속도 모드를 설정 혹은 반환합니다. .. csv-table:: :widths: 10 90 :header-rows: 1 :stub-columns: 0 Value, Meaning 0(cmlFALSE), 마스터 속도 모드. (Master Speed Mode) 1(cmlTRUE), 벡터 속도 모드. (Vector Speed Mode) ▶ SpeedMode : cmlPmIxSetSpeedPattern 함수의 인자이며, 속도모드를 설정합니다. 설정값은 다음과 같습니다. .. csv-table:: :widths: 10 90 :header-rows: 1 :stub-columns: 0 Value, Meaning 0 (cmlMODE_C), CONSTANT 속도모드 => 가감속을 수행하지 않습니다. 1 (cmlMODE_T), TRAPEZOIDAL 속도모드 => 사다리꼴 가감속을 수행합니다. 2 (cmlMODE_S), S-CURVE 속도모드 => S-CURVE 가감속을 수행합니다. ▶ Vel : 마스터 속도 모드 일 때는 작업속도 비율(%)을 설정 혹은 반환합니다. 벡터 속도 모드 일 때는 PPS단위를 사용하여 설정 혹은 반환합니다. ▶ Acc : 마스터 속도 모드 일 때는 가속도 비율(%)을 설정 혹은 반환합니다. 벡터 속도 모드 일 때는 PPS단위를 사용하여 가속도를 설정 혹은 반환합니다. ▶ Dec : 마스터 속도 모드 일 때는 감속도 비율(%)을 설정 혹은 반환합니다. 벡터 속도 모드 일 때는 PPS단위를 사용하여 감속도를 설정 혹은 반환합니다. RETURN VALUE ````````````` .. csv-table:: :widths: 10 90 :header-rows: 1 :stub-columns: 0 Value, Meaning 음수, 수행 실패 ERR_NONE, 수행 성공 REFERENCE ````````````` .. wraning:: 보간 제어의 속도에는 마스터 속도 모드와 백터 속도 모드가 존재합니다. 본 함수의 설명을 잘 읽고, 보간 속도 설정에 주의를 기울여 주시기 바랍니다. 특히 서로 다른 속성을 가지고 있는 서보드라이브에서는 보간 속도 설정에 반드시 주의를 요합니다. - 직선 보간 이동시에 작업속도의 적용 \ - 마스터 속도 모드(Master Speed Mode)로 보간 작업시에는 각 축의 속도가 각 축의 이동거리에 비례하여 자동으로 설정됩니다. 이때 cmlPmIxSetSpeedPattern() 함수의 WorkSpeed 매개 변수(媒介變數)를 통하여 지정되는 보간 작업속도는 마스터속도로 적용됩니다. 각 보간 이동시에 이동거리가 가장 큰 축을 “마스터축”이라고 하며 마스터축의 속도를 “마스터속도”라 합니다. 각 보간 이동시에 마스터축의 속도는 사용자가 지정한 보간 작업속도로 설정되며, 마스터축 이외의 다른 축의 속도는 마스터축과 해당 축의 이동 거리 비에 따라서 자동으로 설정됩니다. \ - 보간 작업속도의 적용 예 cmlPmIxSetSpeedPattern() 함수의 WorkSpeed를 10000으로 설정하고 X,Y,Z축의 보간 작업을 수행하는 경우에 이동 거리에 따른 각 축의 속도 관계는 아래와 같습니다(표에서 배경이 회색으로 되어 있는 것은 마스터축임을 의미하는 것입니다). .. image:: ../../../res/15-1.jpg .. image:: ../../../res/15-2.jpg .. code-block:: c++ :linenos: :emphasize-lines: 5 C/C++ #include “ComiMLink2_SDK.h” #include “ComiMLink2_SDK_Def.h” #define MAP0 0 // 보간 맵 0 #define NODE_ID 1 // 노드 ID 1 long BoardID = 0; cmlPmIxMapAxes(BoardID, 0, MAP0, ccmlX1_MASK | ccmlY1_MASK ); /*MAP0로 설정된 축들을 벡터 스피드로 가속도 10000, 감속도 10000, 등속도 2000으로 설정합니다.*/ cmlPmIxSetSpeedPattern(BoardID, 0, MAP0, cmlTRUE, cmlMODE_T, 2000, 10000, 10000 ); long nSpeedMode = 0, nIsVectorSpeed = 0; double fVel = 0.0f, fAcc = 0.0f, fDec = 0.0f; //MAP0에 설정된 속도 패턴 값들을 반환합니다. cmlPmIxGetSpeedPattern (BoardID, 0, MAP0, &nIsVectorSpeed, &nSpeedMode, &fVel, &fAcc, &fDec );